<?php
class Home extends CI_Controller {
    function __construct()
    {
        parent::__construct();
        $this->load->model('home_model');
        $this->load->model('usuario_model');
        $this->load->library('session');
        $this->load->library('encrypt');
    }

    function index()
    {
        redirect(base_url().'index.php/home/login', 'refresh');
    }
    
    function void()
    {
        redirect(base_url().'index.php/usuario/timeline', 'refresh');
    }

    function sempermissao()
    {
        $data['title']      =   'Hintweek :: Acesso Negado';
        $data['heading']    =   'Acesso Negado!';
        $data['mensagem']   =   'Você não tem permissão para acessar esta funcionalidade. Entre em contato com o administrador.';
        
        $this->load->view('alerta/mensagem_view', $data);
    }

    function login()
    {
        $data['title']      =   'Hintweek :: Login';
        
        $this->load->view('start_page_view',$data);
    }

    function dologin()
    {
        $usuario    = addslashes($this->input->post('usuario'));
        $senha      = addslashes($this->input->post('senha'));
        $senha      = $this->encrypt->sha1($senha);
        
        if($usuario == "" || $senha == "")
        {
            redirect(base_url().'index.php/home/login', 'refresh');
            exit();
        }

        if(isset($_POST['lembrar']))
        {
            setcookie("usuario", $usuario);
            setcookie("lembrar", "checked");
        }
        
        $result = $this->home_model->login_usuario($usuario, $senha);
        
        if(count($result)<1)
        {
            $data['title']      =   'Hintweek :: Ops! Aconteceu um erro';
        
            $this->load->view('start_login_error_view',$data);
        }
        else
        {
            $login = array(
                        'idUsuario' => $result[0]->idUsuario,
                        'username'  => $result[0]->username,
                        'email'     => $result[0]->email,
                        'logged_in' => TRUE,
                        'data'      => date("d/m/Y h:i:s")
                        );
            $this->session->set_userdata($login);
            
            $data['ip']                = getenv("REMOTE_ADDR");
            $data['Usuario_idUsuario'] = $result[0]->idUsuario;
            $data['create_time'] = now();
            $this->home_model->add_acesso($data);
                        
            redirect(base_url().'index.php/home/void', 'location', 301);
        }
    }
    
    function alterarSenha($idUsuario, $token)
    {
        //  Load form_help //
        $this->load->library('form_validation');

        $this->form_validation->set_rules('senha', 'Senha', 'required|min_length[6]|matches[senhaconf]');
        
        $this->form_validation->set_message('required', "Digite uma nova %s");
        $this->form_validation->set_message('matches', "Campos não correpondem, tente novamente.");
        $this->form_validation->set_error_delimiters('<img src="http://localhost/hintweek/img/seta.png"/><p class="error">', '</p>');
        //  Load form_help //
                
        if($this->form_validation->run() == FALSE)
        {
            $usuario = $this->usuario_model->get_by_id($idUsuario);
            
            if($token == $usuario[0]->senha)
            {
                $data['title']      =   'hintweek :: Alterar Senha';
                $data['heading']    =   'Cadastrar nova senha';
                $data['mensagem']   =   'Para sua segurança, nunca informamos a senha do usuário em nosso site e nem por e-mail. Para ter acesso a sua conta, pedimos que você cadastre uma nova senha.';
                $data['idUsuario']  =   $idUsuario;
                $data['token']      =   $token;

                $this->load->view('senha/nova_senha_view', $data);
            }
            else
            {
                redirect('home/login');
            }
        }
        else
        {
            $this->home_model->password_change($idUsuario);
            
            $data['title']      =   'hintweek :: Recuperar Senha - Cadastrar nova senha';
            $data['heading']    =   'Nova senha cadastrada com sucesso!';
            $data['mensagem']   =   'A partir de agora você já pode utilizar sua nova senha para acessar sua conta no hintweek!';
            
            $this->load->view('senha/recuperar_senha_sucesso_view', $data);
        }
            
        
    }


    function recuperarSenha()
    {
        $email = $this->input->post('email');
        
        if($email != NULL)
        {
            $dados = $this->usuario_model->busca_email($email);
            if($dados)
            {
                $token = $dados->senha;
                $msg = "<h1>Para Alterar sua senha click no Link Abaixo</h1>" . anchor('home/alterarSenha/' . $dados->idUsuario . '/' . $token, 'Atualize sua senha aqui!');
            }
            
            
            if($dados != FALSE)
            {
                $this->load->library('email');
                $this->email->from('no-reply@hintweek.com', 'Hintweek.com');
                $this->email->to($email);
                $this->email->subject('Lembrete de Senha');
                $this->email->message($msg);
                $this->email->send();

                $data['title']      =   'Hintweek :: Senha Criada com Sucesso';
                $data['heading']    =   'Senha Enviada';
                $data['mensagem']   =   'Verifique o e-mail vinculado a sua conta no hintweek para recuperar sua senha.';
                
                $this->load->view('senha/recuperar_senha_sucesso_view', $data);
            }
            else
            {
                $data['title']      =   'Hintweek :: Senha Não Enviada';
                $data['heading']    =   'Senha não enviada';
                $data['mensagem']   =   'O e-mail informado não se encontra vinculado a nenhuma conta do hintweek. Você tem certeza que é este o e-mail? Tente novamente.';

                $this->load->view('senha/recuperar_senha_view', $data);
            }
        }
        else
        {
            $data['title']      =   'Hintweek :: Recuperar Senha';
            $data['heading']    =   'Recuperar Senha';
            $data['mensagem']   =   'Para recuperar sua senha, informe seu endereço de e-mail vinculado a sua conta no hintweek.';
        
            $this->load->view('senha/recuperar_senha_view', $data);
        }
    }

    function logout()
    {
        $this->session->sess_destroy();
        $this->login();
    }
}


/* End of file home.php */
/* Location: ./application/controller/home.php */